<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of horario_controller
 *
 * @author jorge-luis
 */
class horario_controller extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('horario');
        $this->load->model('medico');
         $this->load->model('cita');
        $this->load->model('horario_medico');
    }

    function buscar() {
        $data['lista'] = $this->horario->buscar();
        $data['title'] = 'Horarios';
        $data['main'] = 'frm_horarios';
        $this->load->view('/inicio/header', $data);
        $this->load->view('/frm_principal_admin', $data);
    }

    function modificar() {
        $data['horario'] = $this->horario->modificar();
        $data['medicos'] = $this->medico->buscar();
        $data['horarios_medico'] = $this->horario_medico->buscarByHorario();
        $data['title'] = 'editar horario';
        $data['main'] = 'frm_edit_horario';
        $this->load->view('/inicio/header', $data);
        $this->load->view('frm_principal_admin', $data);
        $this->load->view('/inicio/footer', $data);
    }

    function crear() {
        $data['title'] = 'crear horario';
        $data['main'] = 'frm_create_horario';
        $this->load->view('/inicio/header', $data);
        $data['medicos'] = $this->medico->buscar();
        $data['horarios_medico'] = [];
        $this->load->view('frm_principal_admin', $data);
        $this->load->view('/inicio/footer', $data);
    }

    function guardar() {
        $datos = array(
            'hora_inicio' => $this->input->post("hora_inicio"),
            'hora_fin' => $this->input->post("hora_fin"),
        );
        $datos['es_activo'] = 1;
        $id = $this->horario->guardar($datos);
        if (isset($_POST['medicos'])) {
            foreach ($_POST['medicos'] as $value) {
                $data['horario_id'] = $id;
                $data['medico_id'] = $value;
                $this->horario_medico->grabar($data);
            }
        }
        if ($id > 0) {
            $this->buscar();
        }
    }

    function editar() {
        $datos = array(
            'hora_inicio' => $this->input->post("hora_inicio"),
            'hora_fin' => $this->input->post("hora_fin")
        );
        $medicos_selected = array();
        $medicos_no_selected = array();
        if (isset($_POST['medicos'])) {
            foreach ($_POST['medicos'] as $value) {
                $medicos_selected[$value] = $value;
                $object = $this->horario_medico->buscarByHorarioMedico($value);
                if ($object != null) {
                    $data_grabar['id'] = $value;
                    $data_grabar['medico_id'] = $value;
                    $data_grabar['horario_id'] = $this->uri->segment(3);
                    $this->horario_medico->editar($data_grabar);
                } else {
                    $data['medico_id'] = $value;
                    $data['horario_id'] = $id = $this->uri->segment(3);
                    $id = $this->horario_medico->grabar($data);
                }
            }
            foreach ($this->horario_medico->buscarByHorario()as $value) {
                $medicos_no_selected[$value['medico_id']] = $value['medico_id'];
            }
            $result = array_diff_key($medicos_no_selected, $medicos_selected);
            foreach ($result as $value) {
                $id_hm = $this->horario_medico->buscarByHorarioMedico($value);
                if ($this->cita->buscarByHorarioMedico($id_hm['0']['id']) == null) {
                    $this->horario_medico->eliminar($id_hm['0']['id']);
                }
            }
        }
        $this->horario->editar($datos);

        $this->buscar();
    }

}
